Csit.Delta.ClientUtil.EncodingDesc
Описание кодирования значения¶
Синтаксис строки описания кодировки¶
<EncodingDesc> ::= <RuntimeType> [ "-" <Style> [ "-" <Size> [ "-" <ByteOrderAbbrev> ] ] ] <RuntimeType> ::= type_name <Style> ::= encoding_style <Size> ::= int <ByteOrderAbbrev> ::= D | BE | LE | BER | LERСтрока описания содержит:
- название типа данных
RuntimeType
- стиль кодирования значения
Style
- размер значения в байтах
- порядок байт при кодировании значения
ByteOrder
в виде аббревиатуры
Если размер не указан, то он определяется автоматически (при возможности).
Обязательным для указания является только RuntimeType
.
Например:
UInt32 целое число 32 бита без знака Double-LE число с плавающей точкой двойной точности с кодированием младшим байтом по старшему адресу DateTime-UnixTime дата и время в формате Unix UInteger-Bcd-3-BE целое число со знаком, кодируемое бинарно-десятичной кодировкой с младшим байтом по младшим адресу
RuntimeType¶
Null
Тип не указан.
_First
Начало региона определенных значений.
_NumericTypeRangeFirst
Первый числовой тип.
Numeric
Любой числовой тип.
_IntegerTypeRangeFirst
Первый целочисленный тип.
Interger
Любой целочисленный тип.
UInterger
Любой целочисленный тип без знака.
Byte
Одно-байтовое целое число без знака.
UInt16
Двух-байтовое целое число без знака.
UInt32
Четырех-байтовое целое число без знака.
UInt64
Восьми-байтовое целое число без знака.
SInterger
Любой целочисленный тип со знаком.
SByte
Одно-байтовое целое число со знаком.
Int16
Двух-байтовое целое число со знаком.
Int32
Четырех-байтовое целое число со знаком.
Int64
Восьми-байтовое целое число со знаком.
_IntegerTypeRangeLast
Последний целочисленный тип.
_FloatTypeRangeFirst
Первый тип с плавающей запятой.
FloatNumber
Любой числовой тип с плавоющей точкой.
Single
Вещественное число с плавоющей точкой одинарной точности (4 байта).
Float
Синоним для Single. Вещественное число с плавоющей точкой одинарной точности (4 байта).
Double
Вещественное число с плавоющей точкой двойной точности (8 байта).
Decimal
Десятичное число с плавающей запятой повышенной точности (16 байт).
_FloatTypeRangeLast
Последний тип с плавающей запятой.
_NumericTypeRangeLast
Последний числовой тип.
Bit
Один бит.
Boolean
Логическая величина.
DateTime
Дата и время.
TimeSpan
Временной интервал.
Guid
Идентификатор Guid.
Char
Один текстовый символ.
String
Строка текстовых символов.
Binary
Массив байт.
EncodingStyle¶
Normal
Кодирование по умолчанию, т.е. как принято в .NET.
Float24
Как float, но из 3-х байт. Младший байт стандартного Float32
отбрасывается (это наим. значащие биты мантиссы).
IntFloat
8 байт. Сначала Int32 с целой частью, затем float с дробной.
FloatInt
8 байт. Сначала float с дробной частью, затем Int32 с целой.
M4Float
Как обычный float, но знаковый бит находится в мантисе, а не перед показателем степени.
IntM4Float
8 байт. Снчала Int32 в качестве целой части, за ним M4Float в качестве дробной части.
FracTruncInt
8 байт. Сначала Int32 с дробной частью десятичного числа. Затем Int32 с целой частью.
TruncFracInt
8 байт. Сначала Int32 с целой частью десятичного числа. Затем Int32 с дробной частью.
Int24
Как обычное число, но представленное 3 байтами.
Bcd
Двоично-десятичное кодирование.
UnixTime
Int32, в котором записано количество секунд с 01.01.1970.
ByteTimeSecYear
Дата/время в 6 байтах: ss, mm, HH, dd, MM, yy. Год от 2000.
ByteTimeDaySec
Дата/время в 6 байтах: dd, MM, yy, HH, mm, ss. Год от 2000.
ByteTimeHourYear
Дата/время в 4 байтах: HH, dd, MM, yy. Год от 2000.
ByteTimeDayYear
Дата/время в 3 байтах: dd, MM, yy. Год от 2000.
KM5DateTime
Дата/время в 8 байтах, закодированные в формате приборов КМ-5.
TekonDate
Дата в формате Тэкон.
Четыре байта с двоично-десятичным представлением даты: день недели (00 понедельник, 06 воскресенье), дата от 01 до 31, месяц от 01 до 12, младшие цифры года от 00 до 99.
TekonTime
Время в формате Тэкон.
Четыре байта с двоично-десятичным представлением времени: пустой, секунды от 00 до 59, минуты от 00 до 59, часы от 00 до 23.
LogikaM4DateTime
Дата/время в 6 байтах, закодированные в формате прибора LogikaM4.
RocLinkTLP
Адрес параметра (Int32), закодированный в TLP-формате прибора RocLink.
AsciiString
Текст в кодировке ASCII.
ByteOrder¶
Default
Порядок байт не установлен, использовать порядок байт по умолчанию.
BigEndian
Младший байт - первый, старший - последний. Как принято в компьютерах.
78 56 34 12
LittleEndian
Младший байт - последний, старший первый.
12 34 56 78
BigEndianReverseWords
Как BigEndian, но пары байт следуют в обратном порядке.
34 12 78 56
LittleEndianReverseWords
Как LittleEndian, но пары байт следуют в обратном порядке.
56 78 12 34